The present invention relates to the field of information technology, including, more particularly, to systems and techniques for memory management.
Computers are tasked with some of the world's most difficult problems such as weather forecasting, gene sequencing, simulations, and many others. Yet, computers have also had a tremendous impact on consumers through such devices as the personal computer, smartphone, tablet computer, and so forth. Computers have allowed us to solve complex equations, surf the web, and search libraries of everything from banking records and encyclopedias to our favorite recipes.
Time matters. There is an ever-increasing demand for systems and techniques that enable faster and more efficient transactions. Memory management is a process for managing computer memory and allocating portions of memory to programs. Virtual memory refers to decoupling the memory organization from the actual physical hardware. Generally, applications use memory via virtual addresses. Each time an attempt to access the actual data is made the virtual memory subsystem translates the virtual address to a physical address, which corresponds to the address of the data as seen by the hardware. The address translation process itself is managed by the operating system.
Current memory management techniques, however, are unable to guarantee contiguous portions of physical memory be available to programs while also ensuring that such memory is accessible by the OS kernel storage and networking stacks so that the programs can use the kernel storage and networking services.
Thus, there is a need to provide systems and techniques to reserve memory while still retaining the ability to allow read/write access by the kernel storage and networking stacks.